package tools.old.files;

import java.awt.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

import javax.swing.*;
import javax.swing.plaf.basic.BasicInternalFrameTitlePane.RestoreAction;

import tools.EmailValidator;

public class DocentRegistrerenView extends JFrame{

	public static DocentRegistrerenView instance;

	public JPanel panel1 = new JPanel();
	public JLabel title = new JLabel();
	public JLabel voornaam = new JLabel();
	public JLabel achternaam = new JLabel();
	public JLabel email = new JLabel();
	public JLabel gebruikersnaam = new JLabel();
	public JLabel wachtwoord = new JLabel();
	public JLabel afkorting = new JLabel();

	public JTextField voornaamtf = new JTextField();
	public JTextField achternaamtf = new JTextField();
	public JTextField emailtf = new JTextField();
	public JTextField gebruikersnaamtf = new JTextField();
	public JPasswordField wachtwoordtf = new JPasswordField();
	public JTextField afkortingtf = new JTextField();
	public JButton registreer = new JButton();
	public JButton cancel = new JButton();
	public JComboBox KlasCB = new JComboBox();

	public static DocentRegistrerenView getInstance() {
		if (instance == null) {
			instance = new DocentRegistrerenView();
		}
		return instance;
	}

	public DocentRegistrerenView(){
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setTitle("Registreer een docent");
		Klassenlijst.getInstance();
		GUI();
	}

	public void GUI() {
		//frame setup
		this.getContentPane().setLayout(null);
		this.setVisible(true);
		this.setSize(400,399);
		this.setResizable(false);

		Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
		this.setLocation(dim.width/2-this.getSize().width/2, dim.height/2-this.getSize().height/2);

		//klassen uit klassenlijst (arraylist) laden
		JComboBox KlasCB = new JComboBox(Klassenlijst.getInstance().getKlassen().toArray());
		KlasCB.setBounds(170, 255, 150, 20);
		panel1.add(KlasCB);

		//label setup
		title.setVisible(true);
		title.setText("Docent");
		title.setFont(new Font("Lucida Grande", Font.BOLD, 18));
		title.setBounds(20,20,100,22);

		voornaam.setVisible(true);
		voornaam.setText("Voornaam");
		voornaam.setFont(new Font("Lucida Grande", Font.PLAIN, 14));
		voornaam.setBounds(20,70,100,18);

		achternaam.setVisible(true);
		achternaam.setText("Achternaam");
		achternaam.setFont(new Font("Lucida Grande", Font.PLAIN, 14));
		achternaam.setBounds(20,100,100,18);

		email.setVisible(true);
		email.setText("E-mail");
		email.setFont(new Font("Lucida Grande", Font.PLAIN, 14));
		email.setBounds(20,130,100,18);

		gebruikersnaam.setVisible(true);
		gebruikersnaam.setText("Gebruikersnaam");
		gebruikersnaam.setFont(new Font("Lucida Grande", Font.PLAIN, 14));
		gebruikersnaam.setBounds(20,160,150,18);

		wachtwoord.setVisible(true);
		wachtwoord.setText("Wachtwoord");
		wachtwoord.setFont(new Font("Lucida Grande", Font.PLAIN, 14));
		wachtwoord.setBounds(20,190,100,18);

		afkorting.setVisible(true);
		afkorting.setText("Afkorting");
		afkorting.setFont(new Font("Lucida Grande", Font.PLAIN, 14));
		afkorting.setBounds(20,220,100,18);

		JLabel klas = new JLabel("Mentorklas");
		klas.setFont(new Font("Lucida Grande", Font.PLAIN, 14));
		klas.setBounds(20, 250, 100, 17);
		panel1.add(klas);

		//textfield setup
		voornaamtf.setVisible(true);
		voornaamtf.setBounds(170, 70, 150, 23);

		achternaamtf.setVisible(true);
		achternaamtf.setBounds(170, 100, 150, 23);

		emailtf.setVisible(true);
		emailtf.setBounds(170, 130, 150, 23);

		gebruikersnaamtf.setVisible(true);
		gebruikersnaamtf.setBounds(170, 160, 150, 23);

		wachtwoordtf.setVisible(true);
		wachtwoordtf.setBounds(170, 190, 150, 23);

		afkortingtf.setVisible(true);
		afkortingtf.setBounds(170, 220, 150, 23);

		//button setup
		registreer.setVisible(true);
		registreer.setText("Registreer");
		registreer.setBounds(220, 300, 100, 25);

		cancel.setVisible(true);
		cancel.setText("Cancel");
		cancel.setBounds(220, 338, 100, 25);

		//panel1 setup
		panel1.setLayout(null);
		panel1.setVisible(true);
		panel1.setBackground(Color.white);
		panel1.setBounds(0,0, 400, 378);

		panel1.add(title);
		panel1.add(voornaam);
		panel1.add(achternaam);
		panel1.add(email);
		panel1.add(gebruikersnaam);
		panel1.add(wachtwoord);
		panel1.add(afkorting);

		panel1.add(voornaamtf);
		panel1.add(achternaamtf);
		panel1.add(emailtf);
		panel1.add(gebruikersnaamtf);
		panel1.add(wachtwoordtf);
		panel1.add(afkortingtf);

		panel1.add(registreer);
		panel1.add(cancel);

		//Frame add all components
		getContentPane().add(panel1);
		repaint();

		//Add actionlisteners
		cancel.addActionListener(new DocentRegistrerenController(cancel));
		cancel.setActionCommand("Cancel");

		registreer.addActionListener(new DocentRegistrerenController(registreer));
		registreer.setActionCommand("registreren");

	}

	public JTextField getVoornaamtf() {
		return voornaamtf;
	}

	public void setVoornaamtf(JTextField voornaamtf) {
		this.voornaamtf = voornaamtf;
	}

	public JTextField getAchternaamtf() {
		return achternaamtf;
	}

	public void setAchternaamtf(JTextField achternaamtf) {
		this.achternaamtf = achternaamtf;
	}

	public JTextField getEmailtf() {
		return emailtf;
	}

	public void setEmailtf(JTextField emailtf) {
		this.emailtf = emailtf;
	}

	public JTextField getGebruikersnaamtf() {
		return gebruikersnaamtf;
	}

	public void setGebruikersnaamtf(JTextField gebruikersnaamtf) {
		this.gebruikersnaamtf = gebruikersnaamtf;
	}

	public JPasswordField getWachtwoordtf() {
		return wachtwoordtf;
	}

	public void setWachtwoordtf(JPasswordField wachtwoordtf) {
		this.wachtwoordtf = wachtwoordtf;
	}

	public JTextField getAfkortingtf() {
		return afkortingtf;
	}

	public void setAfkortingtf(JTextField afkortingtf) {
		this.afkortingtf = afkortingtf;
	}

	public  JComboBox getKlasCB() {
		return KlasCB;
	}

	public  void setKlasCB(JComboBox klasCB) {
		KlasCB = klasCB;
	}
}